
#ifndef _QUEUE_H_
#define _QUEUE_H_

#include "config.h"

typedef struct node
{
    void*  data;              // 元素数据
    struct node *next;        // 链式队列中结点元素的指针
} queue_node;

typedef struct
{
    queue_node* head;             // 队列头指针
    queue_node* tail;              // 队列尾指针
    mutex_t mutex;
} queue_list;

void queue_init(queue_list* q);
int enqueue(queue_list* q, void* data);
int dequeue(queue_list* q, void** pdata);

#endif /* _QUEUE_H_ */
